#ifndef LONGKEY_COMMON_AGENT_VERSION_H__
#define LONGKEY_COMMON_AGENT_VERSION_H__

#include <windows.h>
#include <tchar.h>

namespace pcagent
{

	// Overloading on pointer types and integral types is not possible in this
	// case and generally speaking not a good idea anyway. It leads to either
	// compile time ambiguities or surprising results at runtime, such as
	// which overload is being called if foobar(NULL).

	// Initializes the version variables from the version resource of the module.
	void InitializeVersionFromModule(HINSTANCE instance);

	// Initializes the version variables from a ULONGLONG version.
	void InitializeVersion(ULONGLONG version);

	// Returns the version string as "major.minor.build.patch".
	const TCHAR* GetVersionString();

	// Returns the version string as a ULONGLONG.
	ULONGLONG GetVersion();

}

#endif  // LONGKEY_COMMON_AGENT_VERSION_H__